2005/10/15

情報圧縮と桁数圧縮(ロカポ誕生の記録:3)

前回の書いた、同じ情報量を持つデータを、大きい基数の記数法(10進法以上の○進法)を用い、情報量を減らさずに少ない表示桁数で表す技術は、桁数圧縮というそうだ。

緯度、経度情報を人間が扱いやすいサイズにするために、そして情報量を減らさないために、いわゆる「可逆情報圧縮技術」も勉強してみた。いわゆるハフマン符号やファイル圧縮技術などの技術で、データの持つ冗長性を削って、情報本来が持つ真の情報量に近づける技術。
これらは何メガバイトもあるファイルでは、多くの冗長性があり、数十パーセント圧縮できるかもしれないが、1メートル精度の緯度経度情報はたかだか50ビット、バイトにすると7バイトのデータであり、これ以上圧縮技術で圧縮することは意味が無い。それに、「本来世界中の任意の地点を表すことができるコード」というコンセプトを掲げた時点で、そのコードはランダムな値を取るものであり、50ビットという情報量はどうしても必要となることが分かった。
つまり、今回のコードの開発では、情報圧縮技術は使えないという結論になった。

情報の偏りを利用して見かけ上の情報量を圧縮する方法もある。今回のコード化を思いついたきっかけとなったビデオ予約のGコードは、チャンネル・日時・録画時間を、応用数学を用いて数値化してある。その際、よく予約されるゴールデンタイムの時刻や録画時間には短い数字となるようにコードを割り当てている。このため、視聴率の高い番組のGコードは非常に短く、短いものでは「たった2桁の数字で予約できる」ように見える。
ただし、これは見かけ上の情報量であり、例えば「23」というGコードは本来「0000000000000023」等であり(Gコードの本当の桁数は知りません)上位桁のゼロは表記していないだけである。逆に言うと、深夜や午前中などの時間帯や、録画時間が中途半端な番組のGコードは長くなり、本来表示に必要な桁数が現れる。
デンソーのマップコードも同じ仕組みで首都圏でのコードを6桁に見せているが、あれは上位4桁にはゼロが入っているのである。
同じ理屈で、例えば海洋部分は長いコードを割り当て、陸地には短いコード、都市部には最も短いコードを割り当てることが出来る。
ただし、この方法では、符号化・復号化には基準となるデータが必要になるなど、使うときに不便な面も多いことも判明した。実際、デンソーのマップコードを使うには、基準点となるデータをデンソーから買わないと使用できない。

ここでふと、本来の緯度、経度の利点について考えた。例えば山や海での遭難の際は、普通緯度経度を使う。もしマップコードで遭難の通報があったら、通報を受けた側がパソコン等の電子機器を用意していてマップコードを緯度経度に変換しないと救助に向かえない。もし電子機器を使用しないとデコードできないと、こういう場合は問題になる。

これまで漠然と「使いやすいコード」を作りたいと考えていたが、ここらへんでしっかり「使いやすい」の定義を固めておく必要がありそうだと思った。

次回、ロカポイントのコンセプトでもある「使いやすい」の定義についての考察を書きます。
続く..

0 件のコメント: